package day19;

/**
 * 单例模式 -- 饿汉式 ：一上来就new 了对象
 * @author: yyfei  
 * @email:  yyfei123@qq.com
 * 
 * 单例模式：采取一定的方法保证整个系统中，对某个类 只能存在一个对象实例，并且该类只提供一个取得其对象的实例方法。
 * 
 * 
 * 实现步骤：
 * 1.将类的构造器 访问权限设置为private(这样就不能用new在外部产生类的对象了） 
 * 2.在类的内部可以产生该类的对象，通过调用该类的的某个静态方法 以返回类内部创建的对象
 * 3.静态方法 只能访问类中 静态成员变量，所以，指向类内部产生的该类对象的变量也必须定义成静态的
 * 
 * 
 */

public class SingletonTest {
	public static void main(String[] args) {
		Bank.getInsBank();
	}
}

/**
 * 饿汉式 单例模式
 * @author: yyfei  
 * @email:  yyfei123@qq.com
 */
class Bank{
	/**
	 * 私有的构造器
	 */
	private Bank() {
		
	}
	
	/**
	 * 内部创建对象，因为方法是静态的，这点的属性也是静态的
	 *
	 */
	private static Bank insBank=new Bank();
	
	/**
	 * 通过公共的静态方法，返回类对象
	 */
	public static Bank getInsBank() {
		return insBank;
	}
}

